package com.example.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.example.common.result.Result;
import com.example.entity.dto.*;
import com.example.entity.hz.SFCTA;
import com.example.entity.vo.*;
import com.example.entity.yifei.SFCTE;

import java.util.List;
import java.util.Map;

/**
 * Created with IntelliJ IDEA.
 *
 * @Author: LiangPanDeng
 * @Date: 2023/12/15/15:12
 * @Description:    派工/报工 service 接口
 */

public interface SFCTEService extends IService<SFCTE> {

    Result saveSfcTdAndSfcTeBg(List<SfcTeListVo> sfcTeListVoList);

    Result deleteSfcTdAndSfcTe(String single,String odd);

    Result<Map<String,SfcTdVo>> querySfcTdIPage(Integer current, Integer size,SelectDto selectDto);

    Result<MocTaAndSfcTeVo> queryOneMocTa(String te001, String te002);

    Result saveSfcTdAndSfcTe(List<SfctdDto> sfctdList);

    Result quxiao(String code);

    Result queryById(Pojo pojo);

    Result test(String code);

    Result<Map<String, MocVo>> queryPageList(Pojo pojo);

    Result<SFCTE> detailPB(String TE001,String TE002);

    Result deleteDb(String TE001,String TE002);

    Result<Map<String,SFCTE>> queryRejects(SelectDto selectDto);

    Result<List<SfctaMoctaVo>> querySfCtaIPag(PojoDto pojoDto);

    /**
     * 查询工单工艺进行报工
     * @param TA001
     * @param TA002
     * @return
     */
    List<SFCTA> querySfCta(String TA001, String TA002);

    /**
     * 新增派工单
     * @param sfcte
     * @return
     */
    Result<List<String>> insertSfcte(List<SFCTE> sfcte);

    /**
     * 查询工单信息进度
     * @param pageNum
     * @param pageSize
     * @return
     */
    Result<Map<String, SfctaMoctaVo>> querySfCtAMoCtaList(Integer pageNum, Integer pageSize, String TA001, String TA002, String TA006,String TA003);

    Result<Map<String, MoctastaVo>> queryMoCtaSfCtAListAll(Integer pageNum, Integer pageSize, String TA001, String TA002, String TA006,String TA011);

    /**
     * 通过工单中的单头单身工艺顺序查询报工单数据
     * @param odd
     * @param Single
     * @param Gx
     * @return
     */
    List<SFCTE> querySfCte(String odd,String Single,String Gx);

    /**
     * 通过工单中的单头单身工艺顺序查询派工单数据
     * @param odd
     * @param Single
     * @param Gx
     * @return
     */
    List<SFCTE> querySfCteS(String odd,String Single,String Gx);

    /**
     * 分页条件查询报工单明细信息
     * @param selectDto
     * @return
     */
    Result<Map<String,SFCTE>> queryIPage(SelectDto selectDto);


    /**
     * 分页条件查询报工单明细信息
     * @param selectDto
     * @return
     */
    Result<Map<String,SFCTE>> queryIPageS(SelectDto selectDto);


    /**
     * 根据派工共单单别 和 派工单单号 获取 派工详细信息列表
     * @param single    单别
     * @param odd       单号
     * @return
     */
    List<SFCTE> selectListByDbDh(String single, String odd);

    List<SFCTE> selectListStaff(String code);

    /**
     * 新增 报工单
     * @param sfcte
     */
    Result add(SFCTE sfcte);

    /**
     * 新增 报工单
     * @param udf06 报工类型
     */
    List<SFCTE> qualityFrom(String page,String pageSize, String udf06, String start_time,String end_time);

    Result<List<GroupVo>> queryMocta();

    List<SfcTeListVo> pgByUuid(String db,String dh);

    Result saveSfCTDandSFCTEprocess(List<SaveSfCTDandSFCTEprocessDto> sfctdList);

    Result saveBGmocty(SaveBGmoctyDto dto);
}
